.\" Copyright (c) 1989, 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Kim Letkeman.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)cal.1	8.1 (Berkeley) 6/6/93
.\"
.TH CAL 1 "January 2018" "util-linux" "User Commands"
.SH NAME
cal \- display a calendar
.SH SYNOPSIS
.B cal
[options]
.RI [[[ day ] " month" ] " year" ]
.br
.B cal
[options]
.RI [ "timestamp" | "monthname" ]
.SH DESCRIPTION
.B cal
displays a simple calendar.  If no arguments are specified, the current
month is displayed.
.sp
The \fImonth\fR may be specified as a number (1-12), as a month name or as an
abbreviated month name according to the current locales.
.sp
Two different calendar systems are used, Gregorian and Julian.  These are
nearly identical systems with Gregorian making a small adjustment to the
frequency of leap years; this facilitates improved synchronization with solar
events like the equinoxes.  The Gregorian calendar reform was introduced in
1582, but its adoption continued up to 1923.  By default
.B cal
uses the adoption date of 3 Sept 1752.  From that date forward the Gregorian
calendar is displayed; previous dates use the Julian calendar system.  11 days
were removed at the time of adoption to bring the calendar in sync with solar
events.  So Sept 1752 has a mix of Julian and Gregorian dates by which the 2nd
is followed by the 14th (the 3rd through the 13th are absent).
.sp
Optionally, either the proleptic Gregorian calendar or the Julian calendar may
be used exclusively.
.RB See\  \-\-reform\  below.
.SH OPTIONS
.TP
\fB\-1\fR, \fB\-\-one\fR
Display single month output.
(This is the default.)
.TP
\fB\-3\fR, \fB\-\-three\fR
Display three months spanning the date.
.TP
\fB\-n , \-\-months\fR \fInumber\fR
Display \fInumber\fR of months, starting from the month containing the date.
.TP
\fB\-S, \fB\-\-span\fR
Display months spanning the date.
.TP
\fB\-s\fR, \fB\-\-sunday\fR
Display Sunday as the first day of the week.
.TP
\fB\-m\fR, \fB\-\-monday\fR
Display Monday as the first day of the week.
.TP
\fB\-v\fR, \fB\-\-vertical\fR
Display using a vertical layout (aka ncal mode).
.TP
.B \-\-iso
Display the proleptic Gregorian calendar exclusively.  This option does not affect
week numbers and the first day of the week.
.RB See\  \-\-reform\  below.
.TP
\fB\-j\fR, \fB\-\-julian\fR
Use day-of-year numbering for all calendars.  These are also called ordinal
days.  Ordinal days range from 1 to 366.  This option does not switch from the
Gregorian to the Julian calendar system, that is controlled by the
.BR \-\-reform\  option.
.sp
Sometimes Gregorian calendars using ordinal dates are referred to as Julian
calendars.  This can be confusing due to the many date related conventions that
use Julian in their name: (ordinal) julian date, julian (calendar) date,
(astronomical) julian date, (modified) julian date, and more.  This option is
named julian, because ordinal days are identified as julian by the POSIX
standard.  However, be aware that
.B cal
also uses the Julian calendar system.
.RB See\  DESCRIPTION\  above.
.TP
.BI \-\-reform\  val
This option sets the adoption date of the Gregorian calendar reform.  Calendar
dates previous to reform use the Julian calendar system.  Calendar dates
after reform use the Gregorian calendar system.  The argument
.I val
can be:
.RS
.IP \(bu 2
.I 1752
- sets 3 September 1752 as the reform date (default).
This is when the Gregorian calendar reform was adopted by the British Empire.
.IP \(bu 2
.I gregorian
- display Gregorian calendars exclusively.  This special placeholder sets the
reform date below the smallest year that
.B cal
can use; meaning all calendar output uses the Gregorian calendar system.  This
is called the proleptic Gregorian calendar, because dates prior to the calendar
system's creation use extrapolated values.
.IP \(bu 2
.I iso
- alias of
.IR gregorian .
The ISO 8601 standard for the representation of dates and times in information
interchange requires using the proleptic Gregorian calendar.
.IP \(bu 2
.I julian
- display Julian calendars exclusively.  This special placeholder sets the reform date above the largest year that
.B cal
can use; meaning all
calendar output uses the Julian calendar system.
.PP
.RB See\  \%DESCRIPTION\  above.
.RE
.TP
\fB\-y\fR, \fB\-\-year\fR
Display a calendar for the whole year.
.TP
\fB\-Y, \fB\-\-twelve\fR
Display a calendar for the next twelve months.
.TP
\fB\-w\fR, \fB\-\-week\fR[=\fInumber\fR]
Display week numbers in the calendar (US or ISO-8601).  See NOTES section
for more details.
.TP
\fB\-\-color\fR[=\fIwhen\fR]
Colorize the output.  The optional argument \fIwhen\fP
can be \fBauto\fR, \fBnever\fR or \fBalways\fR.  If the \fIwhen\fR argument is omitted,
it defaults to \fBauto\fR.  The colors can be disabled; for the current built-in default
see the \fB\-\-help\fR output.  See also the \fBCOLORS\fR section.
.TP
\fB\-V\fR, \fB\-\-version\fR
Display version information and exit.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display help text and exit.
.SH PARAMETERS
.TP
\fBSingle digits-only parameter (e.g., 'cal 2020')\fR
Specifies the \fIyear\fR to be displayed; note the year must be fully specified:
.B "cal 89"
will not display a calendar for 1989.
.TP
\fBSingle string parameter (e.g., 'cal tomorrow' or 'cal August')\fR
Specifies \fItimestamp\fR or a \fImonth name\fR (or abbreviated name) according to the current
locales.
.sp
The special placeholders are accepted when parsing timestamp, "now" may be used
to refer to the current time, "today", "yesterday", "tomorrow" refer to of the
current day, the day before or the next day, respectively.
.sp
The relative date specifications are also accepted, in this case "+" is
evaluated to the current time plus the specified time span. Correspondingly, a
time span that is prefixed with "-" is evaluated to the current time minus the
specified time span, for example '+2days'. Instead of prefixing the time span
with "+" or "-", it may also be suffixed with a space and the word "left" or
"ago" (for example '1 week ago').
.TP
\fBTwo parameters (e.g., 'cal 11 2020')\fR
Denote the \fImonth\fR (1 - 12) and \fIyear\fR.
.TP
\fBThree parameters (e.g., 'cal 25 11 2020')\fR
Denote the \fIday\fR (1-31), \fImonth and \fIyear\fR, and the day will be
highlighted if the calendar is displayed on a terminal.  If no parameters are
specified, the current month's calendar is displayed.
.SH NOTES
A year starts on January 1.  The first day of the week is determined by the
locale or the
.BR \-\-sunday \ and \ \-\-monday \ options.
.PP
The week numbering depends on the choice of the first day of the week.  If it
is Sunday then the customary North American numbering is used, where 1 January
is in week number 1.  If it is Monday (\fB\-m\fR) then the ISO 8601 standard week
numbering is used, where the first Thursday is in week number 1.
.SH COLORS
Implicit coloring can be disabled as follows:
.RS

.B touch /etc/terminal-colors.d/cal.disable

.RE
See
.BR terminal-colors.d (5)
for more details about colorization configuration.
.SH HISTORY
A cal command appeared in Version 6 AT&T UNIX.
.SH BUGS
The default
.B cal
output uses 3 September 1752 as the Gregorian calendar reform date.  The
historical reform  dates for the other locales, including its introduction in
October 1582, are not implemented.
.PP
Alternative calendars, such as the Umm al-Qura, the Solar Hijri, the Ge'ez,
or the lunisolar Hindu, are not supported.
.SH AVAILABILITY
The cal command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
